#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long Ull;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;
const int N=1e6+10;
int arr[N];
int q[N];
int main()
{
	int n=0;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		scanf("%d",arr+i);
	}
	int k=0;
	cin>>k;
    int head=0;
    int tail=-1;
    for(int i=0;i<k;i++)
    {
    	while(head<=tail && arr[q[tail]]>=arr[i]) 
        {
            tail--;
        }
        q[++tail]=i;
	}
    for(int i=0;i<n;i++)
    {
        if(q[head]==i-k-1) head++;
        if(i+k<n)
        {
		

        while(head<=tail && arr[q[tail]]>=arr[i+k]) 
        {
            tail--;
        }
        q[++tail]=i+k;
        }
        cout<<arr[q[head]]<<' ';
 
    }

	return 0;
}

